package generic;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

/**
 * @author SWJ
 * @create 2021-06-22 19:38
 * 测试两种map迭代器
 */
public class TestMap4 {
    public static void main(String[] args) {
        Map<Integer, String> map = new HashMap<>();

        map.put(355, "011");
        map.put(356, "012");
        map.put(357, "013");
        System.out.println(map);

        /**1.将map中的key取出存入set集合，集合的泛型就是key类型
         * Integer */
        Set<Integer> n1 = map.keySet();
        //set获取Integer是int的引用类型关键字n1
        //使用map接口的KeySet()方法
        Iterator<Integer> it = n1.iterator();
        //迭代器Iterator泛型Integer 关键字it =调用n1迭代器

        while (it.hasNext()) {
            //3.循环遍历集合中的所有元素
            Integer keyn2 = it.next();
            String Valuen2 = map.get(keyn2);
            //通过刚刚拿到的keyn2获取对应的valuen2
            System.out.println(keyn2+Valuen2);
        }

     /**2.map转换成set集合是把map中的key/value
      * 最为Entry整体放入Set是一对K和V的数值为一个Entry*/
     Set<Map.Entry<Integer,String>> n3=map.entrySet();
    //将map书籍把map转换成Entry类型中存入键值<kv>存入<Integer,String>
        Iterator<Map.Entry<Integer,String>> n4=n3.iterator();
        //获取Set集合中的迭代器

        while (n4.hasNext()){
            //获取当前集合遍历到entry对象
            Map.Entry<Integer,String> n5=n4.next();
            //get获取n5的kv键值和数值赋值给keyn6，valuen6
            Integer keyn6= n5.getKey();
            String valuen6= n5.getValue();
            System.out.println(keyn6+valuen6);
        }

    }
}
